home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / cross / sasmv14.dms / sasmv14.adf / include / resethandler.i < prev    next >
Text File  |  1993-05-22  |  2KB  |  66 lines

  1.  
  2. *********************************************************************
  3. **
  4. ** SASM SNES Include File 
  5. ** ~~~~~~~~~~~~~~~~~~~~~~
  6. ** Super NES ResetHandler V1.0 - 'Enables RESET SWITCH of SNES'
  7. ** 
  8. ** $: FWS - 09/03/93 - created this file!
  9. **
  10. ** Thanks to Delphi, for debugging helps...
  11. **
  12. *********************************************************************
  13.  
  14.     IFD    RESETHANDLER_I
  15.         WARN    Double Inclusion of RESETHANDLER.I
  16.     ELSE
  17.  
  18. RESETHANDLER_I    set    1
  19.  
  20.     ; first some info to the novice user that we may reduce
  21.     ; the default stacksize by one byte. anyway, code that
  22.     ; uses the stack nearly overflow'd won't run safe, so
  23.     ; i guess nothing serious will happen....
  24.  
  25.     WARN    ResetHandler uses lowest stack ($100) location !!
  26.     .include    snes:include/vectors.i
  27.  
  28.     DBUG                    ;patch smc+ header
  29.  
  30. ; Reset Handler Code [in EMU=6502 MODE!] © 1993 by FWS & Delphi
  31. ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  32.  
  33. rh_IDBYTE    EQU    $100
  34. rh_LOWRAM    EQU    $80
  35.  
  36.     lda    rh_IDBYTE            ;first run?
  37.     cmp    #"!"
  38.     bne    .endresetroutine
  39.  
  40. ;goto back to SUPERCOM PRO.2 SCREEN
  41. ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  42.     ldx    #0                ;no go back to supercom
  43. .copy:    lda    .resetroutine,x
  44.     sta    !(rh_LOWRAM),x            ;THIS IS ABSOLUTE ADDRESSING :)
  45.     inx
  46.     cpx    #.endresetroutine-.resetroutine
  47.     bne    .copy
  48.     jmp    !rh_LOWRAM
  49.  
  50. ; This piece of code to be copied down to RAM
  51. ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  52.  
  53. .resetroutine:
  54.     lda    #0                ;no 65816 cmds here!
  55.     sta    rh_IDBYTE
  56.  
  57.     lda    #$ff
  58.     sta    $e004                ;tell magicom to disable ROM!
  59.     jmp    (VEMU_RESET)
  60. .endresetroutine:
  61.  
  62.     lda    #"!"                ;start file first & save mode
  63.     sta    rh_IDBYTE
  64.  
  65.     ENDC
  66.